Numerically controlled oscillators (NCOs) are used to generate digital representations of sinusoidal waveforms for use in electronic devices. For example, a NCO can be used to generate a digital representation of a sine wave that is in turn processed through a digital-to-analog converter to generate an analog sine wave. The analog sine wave can then be used for a variety of purposes such as a carrier wave for data transmission.
Some conventional NCOs use a lookup table to generate the digital representation of the sine wave. The lookup table includes values of the sine wave corresponding to a number of phase values. NCOs that use the lookup table typically implement a method for traversing a pointer through the lookup table in a closed-loop serial manner. Each value of the sine wave that the pointer points to is output as part of the digital representation of the sine wave. Traversal of the pointer through the lookup table is temporally controlled such that each value of the sine wave is output at an appropriate time. Use of the lookup table can require a large amount of memory, particularly when higher resolution sine wave representations are required. It should be appreciated that the large amount of memory associated with the lookup table can consume a large amount of chip space and power.
Other conventional NCOs use a coordinate rotation digital computer (CORDIC). The CORDIC functions to calculate trigonometric functions such as sine. The CORDIC operates by rotating the phase of a complex number by multiplying the phase by a series of constant values. Thus, the CORDIC will compute an appropriate value of the sine wave to be output from the NCO in accordance with a temporally controlled signal. Implementation of the CORDIC requires a complex logic structure which increases expense by consuming chip space and power.
In view of the foregoing, there is a need for a NCO that does not require either a lookup table or a CORDIC.